﻿using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using SILAS.Entidades;

namespace SILAS.DAO.Mapping
{
    public class UsuarioMap : EntityTypeConfiguration<Usuario>
    {
        public UsuarioMap()
        {
            // Primary Key
            this.HasKey(t => t.Id);

            // Properties
            this.Property(t => t.Nombre)
                .HasMaxLength(20);

            this.Property(t => t.Contrasenia)
                .HasMaxLength(20);

            // Table & Column Mappings
            this.ToTable("Usuario");
            this.Property(t => t.Id).HasColumnName("IdUsuario");
            this.Property(t => t.Nombre).HasColumnName("Nombre");
            this.Property(t => t.Contrasenia).HasColumnName("Contrasenia");
            this.Property(t => t.Fec_Ingreso).HasColumnName("Fec_Ingreso");
            this.Property(t => t.Estado).HasColumnName("Estado");
            this.Property(t => t.IdEmpleado).HasColumnName("IdEmpleado");
            this.Property(t => t.IdRol).HasColumnName("IdRol");

            // Relationships
            this.HasOptional(t => t.Empleado)
                .WithMany(t => t.Usuarios)
                .HasForeignKey(d => d.IdEmpleado);
            this.HasOptional(t => t.Rol)
                .WithMany(t => t.Usuarios)
                .HasForeignKey(d => d.IdRol);

        }
    }
}
